/*--------------------------------*- C++ -*----------------------------------*\
  =========                 |
  \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox
   \\    /   O peration     | Website:  https://openfoam.org
    \\  /    A nd           | Version:  7
     \\/     M anipulation  |
\*---------------------------------------------------------------------------*/
FoamFile
{
    version     2.0;
    format      ascii;
    class       dictionary;
    object      blockMeshDict;
}
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //

convertToMeters 1;

vertices
(
    (0 0 0)    //0
    (8 0 0)
    (8 2 0)
    (8.2 2 0)
    (8.2 0 0)
    (60 0 0)    //5
    (60 2 0)
    (60 8 0)
    (0 8 0)
    (0 2 0)    //9
    (0 0 1)
    (8 0 1)
    (8 2 1)
    (8.2 2 1)
    (8.2 0 1)
    (60 0 1)
    (60 2 1)
    (60 8 1)
    (0 8 1)
    (0 2 1)
    (8 8 0)    //20
    (8.2 8 0)
    (8 8 1)    //22
    (8.2 8 1)
);

blocks
(
    hex (0 1 2 9 10 11 12 19) 
        (320 96 1) 
    simpleGrading 
    (
        1 
        (
            (0.4 0.5 4) //y 边长的 40%, 50%的网格,膨胀率为 4
            (0.6 0.5 1) //y 边长的 60%, 50%的网格,膨胀率为 1
        )
        3)
    
    hex (9 2 20 8 19 12 22 18) 
        (320 240 1) 
    simpleGrading (1 1 1)
    
    hex (2 3 21 20 12 13 23 22) 
        (8 240 1) 
    simpleGrading (1 1 1)
    
    hex (3 6 7 21 13 16 17 23) 
        (2072 240 1) 
    simpleGrading (1 1 1)
    
    hex (4 5 6 3 14 15 16 13) 
        (2072 96 1) 

    simpleGrading 
    (
        1 
        (
            (0.4 0.5 4) //y 边长的 40%, 50%的网格,膨胀率为 4
            (0.6 0.5 1) //y 边长的 60%, 50%的网格,膨胀率为 1
        )
        3)
    
    //delta x 0.025
    
);

edges
(
);

boundary
(
    inlet
    {
        type patch;
        faces
        (
            (0 10 19 9)
            (9 19 18 8)
        );
    }
    
    outlet
    {
        type patch;
        faces
        (
            (5 15 16 6)
            (6 16 17 7)
        );
    }


    top   //symmetry may cause converge problem
    {
        type wall;
        faces
        (
            (8 20 22 18)
            (20 21 23 22)
            (21 7 17 23)
        );
    }


    walls
    {
        type wall;
        faces
        (
            (0 1 10 11)
            (1 11 12 2)
            (2 3 13 12)
            (3 4 14 13)
            (4 5 15 14)
        );
    }
    
    frontAndBack
    {
        type empty;
        faces
        (
            (0 1 2 9)
            (9 2 20 8)
            (2 3 21 20)
            (3 6 7 21)
            (4 5 6 3)
            (10 11 12 19)
            (19 12 22 18)
            (12 13 23 22)
            (13 16 17 23)
            (14 15 16 13)
        );
    }
);

mergePatchPairs
(
);

// ************************************************************************* //
